<html>
<head>
<title>Tool and Library Reference</title>
<link rel="stylesheet" type="text/css" href="../help.css">
<style>
</style>
</head>

<body bgcolor="FFFFFF">

<h1><em>Tool and Library Reference</em></h1>

<p>Logisim libraries hold components you can click and place into your circuits.
Libraries are shown in the left navigation panel. Logisim comes with several
built-in libraries, but you can load additional external libraries from a Java
JAR file or even load a Logisim ".circ" file as a library to use its circuits in
your own. </p>

<blockquote class="hint">Hint: <b>Set the default properties of a component</b> by
    changing them while it is still in the library, before placing it in your
    circuit, Logisim remembers those properties for next time you place another
    of that component.
</blockquote>

<p>The toolbar holds commonly used components, along with tools for editing and
interacting with circuits. You can customize the toolbar by right-clicking it.

<blockquote class="hint">Hint: <b>Drag tools into the toolbar</b> from any library for quick
    access. You can even drag multiple copies of a component to the toolbar and
    give each different default properties.
</blockquote>

<p>Tools and components available for the toolbar and in Logisim's built-in
libraries are documented below.</p>

<table>

<tr><td colspan="2"><font size="+1"><b>Mouse Tools for Toolbar</b></font> &mdash; for
editing and interacting with circuits</td></tr>
<tr><td align="right"><a href="base/poke.html"><img class="icon" src="../../icons/poke.gif"></a></td>
	<td><a href="base/poke.html">Poke Tool</a> &mdash; interact with running simulation</td></tr>
<tr><td align="right"><a href="base/edit.html"><img class="icon" src="../../icons/edit.gif"></a></td>
    <td><a href="base/edit.html">Multi-Tool</a> &mdash; select and move things, or draw wires</td></tr>
<tr><td align="right"><a href="base/select.html"><img class="icon" src="../../icons/move.gif"></a></td>
    <td><a href="base/select.html">Move Tool</a>&mdash; just select and move things</td> </tr>
<tr><td align="right"><a href="base/wiring.html"><img class="icon" src="../../icons/wiring.gif"></a></td>
	<td><a href="base/wiring.html">Wiring Tool</a> &mdash; just draw wires</td></tr>
<tr><td align="right"><a href="base/cutter.html"><img class="icon" src="../../icons/cutter16.png"></a></td>
	<td><a href="base/cutter.html">Wire Cutter</a> &mdash; delete wires or parts of wires </td></tr>
<tr><td align="right"><a href="base/text.html"><img class="icon" src="../../icons/text.gif"></a></td>
	<td><a href="base/text.html">Text Tool</a> &mdash; add or edit labels ad text comments</td></tr>
<tr><td align="right"><a href="base/menu.html"><img class="icon" src="../../icons/menu.gif"></a></td>
	<td><a href="base/menu.html">Menu Tool</a> &mdash; bring up the right-click context menu</td></tr>
<tr><td align="right"><a href="base/comment.html"><img class="icon" src="../../icons/comment.png"></a></td>
	<td><a href="base/comment.html">Comment</a> &mdash; add text comments</td></tr>

<tr><td colspan="2"><br><font size="+1"><b>Wiring library</b></font> &mdash; Basic elements needed for most circuits</td></tr>
<tr><td align="right"><a href="wiring/splitter.html"><img class="icon" src="../../icons/splitter.gif"></a></td>
	<td><a href="wiring/splitter.html">Splitter</a> &mdash; join or split wires into buses</td></tr>
<tr><td align="right"><a href="wiring/pin.html">
	<img class="icon" src="../../icons/pinInput.gif">
	<img class="icon" src="../../icons/pinOutput.gif"></a></td>
	<td><a href="wiring/pin.html">Pin</a> &mdash; input to and output from a circuit</td></tr>
<tr><td align="right"><a href="wiring/probe.html"><img class="icon" src="../../icons/probe.gif"></a></td>
	<td><a href="wiring/probe.html">Probe</a> &mdash; display values on wires</td></tr>
<tr><td align="right"><a href="wiring/tunnel.html"><img class="icon" src="../../icons/tunnel.gif"></a></td>
	<td><a href="wiring/tunnel.html">Tunnel</a> &mdash; make connections without drawing wires</td></tr>
<tr><td align="right"><a href="wiring/clock.html"><img class="icon" src="../../icons/clock.gif"></a></td>
	<td><a href="wiring/clock.html">Clock</a> &mdash; oscillates between zero and one</td></tr>
<tr><td align="right"><a href="wiring/constant.html">
	<img class="icon" src="../../icons/constant0.gif">
	<img class="icon" src="../../icons/constant.gif"></a></td>
	<td><a href="wiring/constant.html">Constant</a> &mdash; like an input, but with a fixed value</td></tr>
<tr><td align="right"><a href="wiring/extender.html"><img class="icon" src="../../icons/extender.gif"></a></td>
	<td><a href="wiring/extender.html">Bit Extender</a> &mdash; zero-extend or sign-extend binary numbers</td></tr>

<tr><td colspan="2"><br><font size="+1"><b>Gates library</b></font> &mdash; Primitive combinational components</td></tr>
<tr><td align="right"><a href="gates/not.html"><img class="icon" src="../../icons/notGate.gif"><!--<br>
<img class="icon" src="../../icons/notGateRect.gif">--></a></td>
	<td><a href="gates/not.html">NOT Gate</a> &mdash; inverts a signal</td></tr>
<tr><td align="right"><a href="gates/buffer.html"><img class="icon" src="../../icons/bufferGate.gif"></a></td>
	<td><a href="gates/buffer.html">Buffer</a> &mdash; does nothing, no-op</td></tr>
<tr><td align="right"><a href="gates/basic.html"><img class="icon" src="../../icons/andGate.gif">
	<img class="icon" src="../../icons/orGate.gif">
	<img class="icon" src="../../icons/nandGate.gif">
	<img class="icon" src="../../icons/norGate.gif"><!-- <br>
	<img class="icon" src="../../icons/andGateRect.gif">
	<img class="icon" src="../../icons/orGateRect.gif">
	<img class="icon" src="../../icons/nandGateRect.gif">
    <img class="icon" src="../../icons/norGateRect.gif">--></a></td>
	<td><a href="gates/basic.html">AND, OR, NAND, NOR Gates</a> &mdash; simple logic operations</td></tr>
<tr><td align="right"><a href="gates/xor.html">
	<img class="icon" src="../../icons/xorGate.gif">
	<img class="icon" src="../../icons/xnorGate.gif">
	<img class="icon" src="../../icons/parityOddGate.gif">
	<img class="icon" src="../../icons/parityEvenGate.gif"><!-- <br>
	<img class="icon" src="../../icons/xnorGateRect.gif">
	<img class="icon" src="../../icons/xorGateRect.gif">
	<img class="icon" src="../../icons/parityOddGate.gif">
    <img class="icon" src="../../icons/parityEvenGate.gif">--></a></td>
	<td><a href="gates/xor.html">XOR, XNOR, Odd Parity, Even Parity</a> &mdash; equality and parity operations</td></tr>
<tr><td align="right"><a href="gates/controlled.html">
	<img class="icon" src="../../icons/controlledBuffer.gif">
	<img class="icon" src="../../icons/controlledInverter.gif"></a></td>
	<td><a href="gates/controlled.html">Tri-state Buffer, Tri-state Inverter</a> &mdash; gates with three possible outputs</td></tr>
<tr><td align="right"><a href="gates/pla.html">
	<img class="icon" src="../../icons/pla.gif"></a></td>
	<td><a href="gates/pla.html">PLA</a> &mdash; Programmable Logic Array</td></tr>

<tr><td colspan="2"><br><font size="+1"><b>Plexers library</b></font> &mdash; controlling and selecting groups of signals</td></tr>
<tr><td align="right"><a href="plexers/mux.html"><img class="icon" src="../../icons/multiplexer.gif"></a></td>
	<td><a href="plexers/mux.html">Multiplexer</a> &mdash; select one value from of a group of wires</td></tr>
<tr><td align="right"><a href="plexers/demux.html"><img class="icon" src="../../icons/demultiplexer.gif"></a></td>
	<td><a href="plexers/demux.html">Demultiplexer</a> &mdash; send a value to one of a group of wires</td></tr>
<tr><td align="right"><a href="plexers/decoder.html"><img class="icon" src="../../icons/decoder.gif"></a></td>
	<td><a href="plexers/decoder.html">Decoder</a> &mdash; enable one out of a group of wires</td></tr>
<tr><td align="right"><a href="plexers/priencod.html"><img class="icon" src="../../icons/priencod.gif"></a></td>
	<td><a href="plexers/priencod.html">Priority Encoder</a> &mdash; check which wire among a group is enabled</td></tr>
<tr><td align="right"><a href="plexers/selector.html"><img class="icon" src="../../icons/bitSelector.gif"></a></td>
	<td><a href="plexers/selector.html">Bit Selector</a> &mdash; select one bit from a bus</td></tr>

<tr><td colspan="2"><br><font size="+1"><b>Arithmetic library</b></font> &mdash; computing with binary numbers</td></tr>
<tr><td align="right"><a href="arith/adder.html"><img class="icon" src="../../icons/adder.gif"></a></td>
	<td><a href="arith/adder.html">Adder</a> &mdash; add binary numbers</td></tr>
<tr><td align="right"><a href="arith/subtractor.html"><img class="icon" src="../../icons/subtractor.gif"></a></td>
	<td><a href="arith/subtractor.html">Subtractor</a> &mdash; subtract binary numbers</td></tr>
<tr><td align="right"><a href="arith/multiplier.html"><img class="icon" src="../../icons/multiplier.gif"></a></td>
	<td><a href="arith/multiplier.html">Multiplier</a> &mdash; multiply binary numbers</td></tr>
<tr><td align="right"><a href="arith/divider.html"><img class="icon" src="../../icons/divider.gif"></a></td>
	<td><a href="arith/divider.html">Divider</a> &mdash; divide binary numbers</td></tr>
<tr><td align="right"><a href="arith/negator.html"><img class="icon" src="../../icons/negator.gif"></a></td>
	<td><a href="arith/negator.html">Negator</a> &mdash; negate two's complement binary numbers</td></tr>
<tr><td align="right"><a href="arith/comparator.html"><img class="icon" src="../../icons/comparator.gif"></a></td>
	<td><a href="arith/comparator.html">Comparator</a> &mdash; compare binary numbers</td></tr>
<tr><td align="right"><a href="arith/shifter.html"><img class="icon" src="../../icons/shifter.gif"></a></td>
	<td><a href="arith/shifter.html">Shifter</a> &mdash; shift binary patterns left or right</td></tr>
<tr><td align="right"><a href="arith/bitadder.html"><img class="icon" src="../../icons/bitadder.gif"></a></td>
	<td><a href="arith/bitadder.html">Bit Adder</a> &mdash; count the enabled bits in a bus value</td></tr>
<tr><td align="right"><a href="arith/bitfinder.html"><img class="icon" src="../../icons/bitfindr.gif"></a></td>
	<td><a href="arith/bitfinder.html">Bit Finder</a> &mdash; search for a bit in a bus value</td></tr>

<tr><td colspan="2"><br><font size="+1"><b>Memory library</b></font> &mdash; storing data</td></tr>
<tr><td align="right"><a href="mem/flipflops.html">
	<img class="icon" src="../../icons/dFlipFlop.gif">
	<img class="icon" src="../../icons/tFlipFlop.gif">
	<img class="icon" src="../../icons/jkFlipFlop.gif">
	<img class="icon" src="../../icons/srFlipFlop.gif"></a></td>
	<td><a href="mem/flipflops.html">D, T, J-K, S-R Flip-Flops</a> &mdash; store a single-bit</td></tr>
<tr><td align="right"><a href="mem/register.html"><img class="icon" src="../../icons/register.gif"></a></td>
	<td><a href="mem/register.html">Register</a> &mdash; store multiple bits</td></tr>
<tr><td align="right"><a href="mem/counter.html"><img class="icon" src="../../icons/counter.gif"></a></td>
	<td><a href="mem/counter.html">Counter</a> &mdash; store, increment, and decrement a number </td></tr>
<tr><td align="right"><a href="mem/shiftreg.html"><img class="icon" src="../../icons/shiftreg.gif"></a></td>
	<td><a href="mem/shiftreg.html">Shift Register</a> &mdash; store and shift a bit pattern</td></tr>
<tr><td align="right"><a href="mem/random.html"><img class="icon" src="../../icons/random.gif"></a></td>
	<td><a href="mem/random.html">Random Generator</a> &mdash; generate random numbers</td></tr>
<tr><td align="right"><a href="mem/ram.html"><img class="icon" src="../../icons/ram.gif"></a></td>
	<td><a href="mem/ram.html">RAM</a> &mdash; random-access memory</td></tr>
<tr><td align="right"><a href="mem/rom.html"><img class="icon" src="../../icons/rom.gif"></a></td>
	<td><a href="mem/rom.html">ROM</a> &mdash; read-only memory</td></tr>

<tr><td colspan="2"><br><font size="+1"><b>Input/Output library</b></font> &mdash; user interaction</td></tr>
<tr><td align="right"><a href="io/button.html"><img class="icon" src="../../icons/button.gif"></a></td>
	<td><a href="io/button.html">Button</a> &mdash; a push-button for user input</td></tr>
<tr><td align="right"><a href="io/dipswitch.html"><img class="icon" src="../../icons/dipswitch.gif"></a></td>
	<td><a href="io/dipswitch.html">DIP Switch</a> &mdash; a row of small switches for user input</td></tr>
<tr><td align="right"><a href="io/joystick.html"><img class="icon" src="../../icons/joystick.gif"></a></td>
	<td><a href="io/joystick.html">Joystick</a> &mdash; arcade-style joystick for x,y user input</td></tr>
<tr><td align="right"><a href="io/keyboard.html"><img class="icon" src="../../icons/keyboard.gif"></a></td>
	<td><a href="io/keyboard.html">Keyboard</a> &mdash; ascii text user input</td></tr>
<tr><td align="right"><a href="io/led.html"><img class="icon" src="../../icons/led.gif"></a></td>
	<td><a href="io/led.html">LED</a> &mdash; single-bit output as a colored light</td></tr>
<tr><td align="right"><a href="io/portio.html"><img class="icon" src="../../icons/pio.gif"></a></td>
	<td><a href="io/portio.html">Port I/O</a> &mdash; bi-directional input/output (useful for FPGAs)</td></tr>
<tr><td align="right"><a href="io/rgbled.html"><img class="icon" src="../../icons/rgbled.gif"></a></td>
	<td><a href="io/rgbled.html">RGBLED</a> &mdash; three-bit output as a multi-colored light</td></tr>
<tr><td align="right"><a href="io/7seg.html"><img class="icon" src="../../icons/7seg.gif"></a></td>
	<td><a href="io/7seg.html">7-Segment Display</a> &mdash; display numbers or patterns</td></tr>
<tr><td align="right"><a href="io/hexdig.html"><img class="icon" src="../../icons/hexdig.gif"></a></td>
	<td><a href="io/hexdig.html">Hex Digit Display</a> &mdash; display 4-bit data as a hex digit</td></tr>
<tr><td align="right"><a href="io/dotmat.html"><img class="icon" src="../../icons/dotmat.gif"></a></td>
	<td><a href="io/dotmat.html">LED Matrix</a> &mdash; a grid of 1-bit lights</td></tr>
<tr><td align="right"><a href="io/tty.html"><img class="icon" src="../../icons/tty.gif"></a></td>
	<td><a href="io/tty.html">TTY</a> &mdash; display ascii text</td></tr>
<tr><td align="right"><a href="io/fileviewer.html"><img class="icon" src="../../icons/fileviewer.gif"></a></td>
	<td><a href="io/fileviewer.html">File Viewer</a> &mdash; display lines from a file</td></tr>
<tr><td align="right"><a href="io/rgbvideo.html"><img class="icon" src="../../icons/rgbvideo.png"></a></td>
	<td><a href="io/rgbvideo.html">RGB Video</a> &mdash; full-color video output</td></tr>

<tr><td colspan="2"><br><font size="+1"><b>Analog library</b></font> &mdash; simplistic non-digital components</td></tr>
<tr><td align="right"><a href="analog/const01.html">
	<img class="icon" src="../../icons/power.gif">
	<img class="icon" src="../../icons/ground.gif"></a></td>
	<td><a href="analog/const01.html">Power, Ground</a> &mdash; signal source and sink</td></tr>
<tr><td align="right"><a href="analog/transist.html">
	<img class="icon" src="../../icons/trans0.gif">
	<img class="icon" src="../../icons/trans1.gif"></a></td>
	<td><a href="analog/transist.html">Transistor</a> &mdash; simplified PNP and NPN transistors</td></tr>
<tr><td align="right"><a href="analog/transmis.html"><img class="icon" src="../../icons/transmis.gif"></a></td>
	<td><a href="analog/transmis.html">Transmission Gate</a> &mdash; block or transmit a signal</td></tr>
<tr><td align="right"><a href="analog/pull.html"><img class="icon" src="../../icons/pullshap.gif"></a>
        <!--<img class="icon" src="../../icons/pullrect.gif"></a>--></td>
	<td><a href="analog/pull.html">Pull Resistor</a> &mdash; weakly pull signal to a default value</td></tr>

<tr><td colspan="2"><br><font size="+1"><b>BFH mega functions</b></font> &mdash; miscellaneous advanced components</td></tr>
<tr><td align="right"><a href="bfh/dynclock.html"><img class="icon" src="../../icons/dynclock.gif"></a></td>
	<td><a href="bfh/dynclock.html">DynamicClockControl</a> &mdash; control FPGA clock speed dynamically</td></tr>
<tr><td align="right"><a href="bfh/bin2bcd.html"><img class="icon" src="../../icons/subcirc.gif"></a></td>
	<td><a href="bfh/bin2bcd.html">Bin2BCD</a> &mdash; binary to binary-coded-decimal conveter</td></tr>
<tr><td align="right"><a href="bfh/bcd2seven.html"><img class="icon" src="../../icons/subcirc.gif"></a></td>
	<td><a href="bfh/bcd2seven.html">BCD2SevenSegment</a> &mdash; 4-bit binary-coded-decimal to seven-segment adapter</td></tr>
<tr><td align="right"><a href="bfh/hex2seven.html"><img class="icon" src="../../icons/subcirc.gif"></a></td>
	<td><a href="bfh/hex2seven.html">Hex2SevenSegment</a> &mdash; 4-bit hex to seven-segment adapter</td></tr>

</table>

</body>
</html>
